#install.packages("plotly")
library('plotly')
####### Q1 -> a ##########
head(iris)
p <- plot_ly(data = iris, x = ~Sepal.Length, y = ~Petal.Length)
p
No trace type specified:
  Based on info supplied, a 'scatter' trace seems appropriate.
  Read more about this trace type -> https://plot.ly/r/reference/#scatter
No scatter mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plot.ly/r/reference/#scatter-mode
No trace type specified:
  Based on info supplied, a 'scatter' trace seems appropriate.
  Read more about this trace type -> https://plot.ly/r/reference/#scatter
No scatter mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plot.ly/r/reference/#scatter-mode
####### Q1 -> b ##########
pal <- c("red", "blue", "green")
p = plot_ly(data = iris, x = ~Sepal.Length, y = ~Petal.Length,color = ~Species , colors = pal)
p
No trace type specified:
  Based on info supplied, a 'scatter' trace seems appropriate.
  Read more about this trace type -> https://plot.ly/r/reference/#scatter
No scatter mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plot.ly/r/reference/#scatter-mode
No trace type specified:
  Based on info supplied, a 'scatter' trace seems appropriate.
  Read more about this trace type -> https://plot.ly/r/reference/#scatter
No scatter mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plot.ly/r/reference/#scatter-mode
######## Q1 -> c #########
# 1
p = plot_ly(data =iris,  x = ~Sepal.Length , type = "histogram")
p
# 2
p = plot_ly(data =iris,  y = ~Sepal.Length , type = "histogram")
p
# 3
p = plot_ly(data =iris,  alpha = 0.6) %>%
  add_histogram(x = ~Sepal.Length) %>%
  add_histogram(x = ~Sepal.Length + 1) %>%
  layout(barmode = "overlay")
p
######## Q1 -> d #########
today <- Sys.Date()
tm <- seq(0, 600, by = 10)
x <- today - tm
y <- rnorm(length(x))
p <- plot_ly(x = ~x, y = ~y, mode = 'lines', text = paste(tm, "days from today"))
p
No trace type specified:
  Based on info supplied, a 'scatter' trace seems appropriate.
  Read more about this trace type -> https://plot.ly/r/reference/#scatter
No trace type specified:
  Based on info supplied, a 'scatter' trace seems appropriate.
  Read more about this trace type -> https://plot.ly/r/reference/#scatter
d = read.csv("https://raw.githubusercontent.com/plotly/datasets/master/2011_february_us_airport_traffic.csv")
d
d$hover <- with(d, paste(state, '<br>', airport, iata , "<br>",
                            city,"<br>"))
# give state boundaries a white border
l <- list(color = toRGB("white"), width = 0.5)
# specify some map projection/options
g <- list(
  scope = 'usa',
  projection = list(type = 'albers usa'),
  showlakes = TRUE,
  lakecolor = toRGB('white')
)
p <- plot_geo(d, locationmode = 'USA-states') %>%
  add_trace(
    z = ~cnt, text = ~hover , locations = ~state,
    color = ~cnt, colors = 'Blues'
  ) %>%
  colorbar(title = "Count") %>%
  layout(
    title = '2011 US Airport Traffic',
    geo = g
  )
p
p <- plot_geo(df[1:1500,], lat = ~lat, lon = ~lon) %>%
  add_markers(
    text = ~paste(name, paste("Population:", pop)),
    color = ~name, symbol = I("square"), size = I(8), hoverinfo = "text"
  ) %>%
  colorbar(title = "population of cities") %>%
  layout(
    title = 'Most populated cities in US <br />(Hover for population of cities)', geo = g
  )
n too large, allowed maximum for palette Set2 is 8
Returning the palette you asked for with that many colors
n too large, allowed maximum for palette Set2 is 8
Returning the palette you asked for with that many colors
Didn't find a colorbar to modify.
p <- plot_geo(df[1:1500,], lat = ~lat, lon = ~lon) %>%
  add_markers(
    text = ~paste(name, paste("Population:", pop)),
    color = ~name, symbol = I("square"), size = I(8), hoverinfo = "text"
  ) %>%
  colorbar(title = "population of cities") %>%
  layout(
    title = 'Most populated cities in US <br />(Hover for population of cities)', geo = g
  )
n too large, allowed maximum for palette Set2 is 8
Returning the palette you asked for with that many colors
n too large, allowed maximum for palette Set2 is 8
Returning the palette you asked for with that many colors
Didn't find a colorbar to modify.
p
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCmF1dGhvcjogIkFraGlsIFBhdGlsIg0KLS0tDQoNCg0KYGBge3J9DQoNCiNpbnN0YWxsLnBhY2thZ2VzKCJwbG90bHkiKQ0KbGlicmFyeSgncGxvdGx5JykNCg0KIyMjIyMjIyBRMSAtPiBhICMjIyMjIyMjIyMNCg0KDQpoZWFkKGlyaXMpDQoNCg0KcCA8LSBwbG90X2x5KGRhdGEgPSBpcmlzLCB4ID0gflNlcGFsLkxlbmd0aCwgeSA9IH5QZXRhbC5MZW5ndGgpDQpwDQpgYGANCg0KYGBge3J9DQojIyMjIyMjIFExIC0+IGIgIyMjIyMjIyMjIw0KcGFsIDwtIGMoInJlZCIsICJibHVlIiwgImdyZWVuIikNCnAgPSBwbG90X2x5KGRhdGEgPSBpcmlzLCB4ID0gflNlcGFsLkxlbmd0aCwgeSA9IH5QZXRhbC5MZW5ndGgsY29sb3IgPSB+U3BlY2llcyAsIGNvbG9ycyA9IHBhbCkNCnANCmBgYA0KDQpgYGB7cn0NCiMjIyMjIyMjIFExIC0+IGMgIyMjIyMjIyMjDQoNCiMgMQ0KcCA9IHBsb3RfbHkoZGF0YSA9aXJpcywgIHggPSB+U2VwYWwuTGVuZ3RoICwgdHlwZSA9ICJoaXN0b2dyYW0iKQ0KcA0KYGBgDQoNCmBgYHtyfQ0KIyAyDQpwID0gcGxvdF9seShkYXRhID1pcmlzLCAgeSA9IH5TZXBhbC5MZW5ndGggLCB0eXBlID0gImhpc3RvZ3JhbSIpDQpwDQoNCmBgYA0KDQpgYGB7cn0NCiMgMw0KcCA9IHBsb3RfbHkoZGF0YSA9aXJpcywgIGFscGhhID0gMC42KSAlPiUNCiAgYWRkX2hpc3RvZ3JhbSh4ID0gflNlcGFsLkxlbmd0aCkgJT4lDQogIGFkZF9oaXN0b2dyYW0oeCA9IH5TZXBhbC5MZW5ndGggKyAxKSAlPiUNCiAgbGF5b3V0KGJhcm1vZGUgPSAib3ZlcmxheSIpDQpwDQoNCmBgYA0KDQoNCmBgYHtyfQ0KIyMjIyMjIyMgUTEgLT4gZCAjIyMjIyMjIyMNCg0KdG9kYXkgPC0gU3lzLkRhdGUoKQ0KdG0gPC0gc2VxKDAsIDYwMCwgYnkgPSAxMCkNCnggPC0gdG9kYXkgLSB0bQ0KeSA8LSBybm9ybShsZW5ndGgoeCkpDQpwIDwtIHBsb3RfbHkoeCA9IH54LCB5ID0gfnksIG1vZGUgPSAnbGluZXMnLCB0ZXh0ID0gcGFzdGUodG0sICJkYXlzIGZyb20gdG9kYXkiKSkNCnANCg0KYGBgDQoNCg0KYGBge3J9DQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgMiAtPiAxICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCg0KZCA9IHJlYWQuY3N2KCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vcGxvdGx5L2RhdGFzZXRzL21hc3Rlci8yMDExX2ZlYnJ1YXJ5X3VzX2FpcnBvcnRfdHJhZmZpYy5jc3YiKQ0KDQpkDQpkJGhvdmVyIDwtIHdpdGgoZCwgcGFzdGUoc3RhdGUsICc8YnI+JywgYWlycG9ydCwgaWF0YSAsICI8YnI+IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaXR5LCI8YnI+IikpDQoNCiMgZ2l2ZSBzdGF0ZSBib3VuZGFyaWVzIGEgd2hpdGUgYm9yZGVyDQpsIDwtIGxpc3QoY29sb3IgPSB0b1JHQigid2hpdGUiKSwgd2lkdGggPSAwLjUpDQoNCiMgc3BlY2lmeSBzb21lIG1hcCBwcm9qZWN0aW9uL29wdGlvbnMNCmcgPC0gbGlzdCgNCiAgc2NvcGUgPSAndXNhJywNCiAgcHJvamVjdGlvbiA9IGxpc3QodHlwZSA9ICdhbGJlcnMgdXNhJyksDQogIHNob3dsYWtlcyA9IFRSVUUsDQogIGxha2Vjb2xvciA9IHRvUkdCKCd3aGl0ZScpDQopDQoNCnAgPC0gcGxvdF9nZW8oZCwgbG9jYXRpb25tb2RlID0gJ1VTQS1zdGF0ZXMnKSAlPiUNCiAgYWRkX3RyYWNlKA0KICAgIHogPSB+Y250LCB0ZXh0ID0gfmhvdmVyICwgbG9jYXRpb25zID0gfnN0YXRlLA0KICAgIGNvbG9yID0gfmNudCwgY29sb3JzID0gJ0JsdWVzJw0KICApICU+JQ0KICBjb2xvcmJhcih0aXRsZSA9ICJDb3VudCIpICU+JQ0KICBsYXlvdXQoDQogICAgdGl0bGUgPSAnMjAxMSBVUyBBaXJwb3J0IFRyYWZmaWMnLA0KICAgIGdlbyA9IGcNCiAgKQ0KDQpwDQoNCmBgYA0KDQoNCg0KYGBge3J9DQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgMiAtPiAyICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCg0KZGYgPSByZWFkLmNzdigiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Bsb3RseS9kYXRhc2V0cy9tYXN0ZXIvMjAxNF91c19jaXRpZXMuY3N2IikNCg0KIyBnZW8gc3R5bGluZw0KZyA8LSBsaXN0KA0KICBzY29wZSA9ICd1c2EnLA0KICBwcm9qZWN0aW9uID0gbGlzdCh0eXBlID0gJ2FsYmVycyB1c2EnKSwNCiAgc2hvd2xhbmQgPSBUUlVFLA0KICBsYW5kY29sb3IgPSB0b1JHQigiZ3JheTk1IiksDQogIHN1YnVuaXRjb2xvciA9IHRvUkdCKCJncmF5ODUiKSwNCiAgY291bnRyeWNvbG9yID0gdG9SR0IoImdyYXk4NSIpLA0KICBjb3VudHJ5d2lkdGggPSAwLjUsDQogIHN1YnVuaXR3aWR0aCA9IDAuNQ0KKQ0KZGltKGRmKQ0KcCA8LSBwbG90X2dlbyhkZlsxOjE1MDAsXSwgbGF0ID0gfmxhdCwgbG9uID0gfmxvbikgJT4lDQogIGFkZF9tYXJrZXJzKA0KICAgIHRleHQgPSB+cGFzdGUobmFtZSwgcGFzdGUoIlBvcHVsYXRpb246IiwgcG9wKSksDQogICAgY29sb3IgPSB+bmFtZSwgc3ltYm9sID0gSSgic3F1YXJlIiksIHNpemUgPSBJKDgpLCBob3ZlcmluZm8gPSAidGV4dCINCiAgKSAlPiUNCiAgY29sb3JiYXIodGl0bGUgPSAicG9wdWxhdGlvbiBvZiBjaXRpZXMiKSAlPiUNCiAgbGF5b3V0KA0KICAgIHRpdGxlID0gJ01vc3QgcG9wdWxhdGVkIGNpdGllcyBpbiBVUyA8YnIgLz4oSG92ZXIgZm9yIHBvcHVsYXRpb24gb2YgY2l0aWVzKScsIGdlbyA9IGcNCiAgKQ0KcA0KDQpgYGANCg0KDQo=